BigDecimal কে BigInteger এ রূপান্তর করা

BigInteger এবং BigDecimal এর মধ্যে Conversion - জাভা ম্যাথ প্যাকেজ (Java.math Package) - Java Technologies

309

BigDecimal এবং BigInteger হল দুটি গুরুত্বপূর্ণ ক্লাস যা Java.math প্যাকেজের অংশ এবং তাদের মধ্যে প্রধান পার্থক্য হল BigDecimal ক্লাস ডেসিমাল সংখ্যার সঠিক গণনা (যেমন আর্থিক হিসাব) করার জন্য ব্যবহৃত হয়, যখন BigInteger অন্তহীন পূর্ণসংখ্যা রেপ্রেজেন্ট করতে ব্যবহৃত হয়। কখনও কখনও আপনাকে BigDecimal কে BigInteger তে রূপান্তর করতে হতে পারে, বিশেষ করে যখন আপনি শুধুমাত্র পূর্ণসংখ্যা দরকার এবং দশমিকের স্থান উপেক্ষা করতে চান।

BigDecimal থেকে BigInteger তে রূপান্তর করার পদ্ধতি:

BigDecimal কে BigInteger তে রূপান্তর করতে, BigDecimal.toBigInteger() বা BigDecimal.toBigIntegerExact() মেথড ব্যবহার করা হয়। তবে, এগুলোর মধ্যে কিছু পার্থক্য রয়েছে:

  1. toBigInteger(): এটি BigDecimal কে BigInteger তে রূপান্তর করে, কিন্তু যদি ডেসিমাল অংশ থাকে তবে এটি হালকা করে (ভগ্নাংশ সরিয়ে ফেলে)।
  2. toBigIntegerExact(): এটি BigDecimal এর মানের ভগ্নাংশ না থাকলে রূপান্তর করবে, কিন্তু যদি ভগ্নাংশ থাকে, তবে ArithmeticException ছুড়ে দেবে।

উদাহরণ 1: BigDecimal থেকে BigInteger তে রূপান্তর (সাধারণ)

import java.math.BigDecimal;
import java.math.BigInteger;

public class BigDecimalToBigIntegerExample {
    public static void main(String[] args) {
        // Create a BigDecimal object
        BigDecimal bigDecimal = new BigDecimal("123.456");

        // Convert BigDecimal to BigInteger (removes the decimal part)
        BigInteger bigInteger = bigDecimal.toBigInteger();
        System.out.println("BigInteger after conversion: " + bigInteger);
    }
}

Output:

BigInteger after conversion: 123

ব্যাখ্যা:

  • bigDecimal.toBigInteger(): এখানে, BigDecimal এর দশমিক অংশটি সরিয়ে ফেলেছে এবং শুধুমাত্র পূর্ণসংখ্যা অংশ 123 রূপান্তরিত হয়েছে।

উদাহরণ 2: BigDecimal থেকে BigInteger তে রূপান্তর (Exact Method)

import java.math.BigDecimal;
import java.math.BigInteger;

public class BigDecimalToBigIntegerExactExample {
    public static void main(String[] args) {
        // Create a BigDecimal object
        BigDecimal bigDecimal = new BigDecimal("123.456");

        try {
            // Convert BigDecimal to BigInteger exactly (will throw exception if decimal part exists)
            BigInteger bigInteger = bigDecimal.toBigIntegerExact();
            System.out.println("BigInteger after exact conversion: " + bigInteger);
        } catch (ArithmeticException e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}

Output:

Error: Rounding necessary

ব্যাখ্যা:

  • toBigIntegerExact(): এটি ArithmeticException ছুড়ে দিয়েছে কারণ BigDecimal এ দশমিক অংশ ছিল, এবং সঠিকভাবে রূপান্তর করা সম্ভব ছিল না।

উদাহরণ 3: BigDecimal থেকে BigInteger তে রূপান্তর (Negative Values)

import java.math.BigDecimal;
import java.math.BigInteger;

public class BigDecimalToBigIntegerNegativeExample {
    public static void main(String[] args) {
        // Create a BigDecimal object with a negative value
        BigDecimal bigDecimal = new BigDecimal("-123.456");

        // Convert BigDecimal to BigInteger (removes the decimal part)
        BigInteger bigInteger = bigDecimal.toBigInteger();
        System.out.println("BigInteger after conversion: " + bigInteger);
    }
}

Output:

BigInteger after conversion: -123

ব্যাখ্যা:

  • toBigInteger(): এটি BigDecimal এর নেতিবাচক মান -123.456 থেকে দশমিক অংশ সরিয়ে দিয়ে -123 রূপান্তর করেছে।

সারাংশ:

  • BigDecimal.toBigInteger(): এটি BigDecimal এর দশমিক অংশটি সরিয়ে দিয়ে পূর্ণসংখ্যা প্রদান করে। এটি arbitrary-precision পূর্ণসংখ্যা প্রদান করে।
  • BigDecimal.toBigIntegerExact(): এটি BigDecimal এর রূপান্তরকে exact করতে প্রয়োগ করা হয়, এবং যদি ডেসিমাল অংশ থাকে তবে এটি ArithmeticException ছুড়ে দেয়।
Content added By
Promotion

Are you sure to start over?

Loading...